package cl.tinet.trainee.salas.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * Clase sala.
 * 
 * 
 * @author Naht-Sams
 */
@Entity
@Table(name = "SALA")
public class Sala implements Serializable {

    /**
     * Version serial.
     */
    private static final long serialVersionUID = 1L;

    /**
     * Codigo de la sala. Autoincrementable.
     */

    @Id
    @Column(name = "cod_sala")
    private int codSala;
    /**
     * Capacidad total de personas que abarca la sala.
     */
    @Column(name = "capacidad")
    private int capacidad;
    /**
     * Nombre de la sala.
     */
    @Column(name = "nombre_sala")
    private String nombreSala;
    /**
     * Lugar donde se encuentra la sala.
     */
    @Column(name = "ubicacion")
    private String ubicacion;
    /**
     * 0 No tiene proyecto. 1 Si tiene proyector.
     */
    @Column(name = "proyector")
    private boolean proyector;
    /**
     * 0 No tiene televisor. 1 Si tiene televisor.
     */
    @Column(name = "televisor")
    private boolean televisor;
    /**
     * Estado.
     */
    @Column(name = "estado")
    private boolean estado;

    /**
     * Allows to get the codSala attribute value.
     * 
     * @return the codSala value.
     */
    public int getCodSala() {
        return codSala;
    }

    /**
     * Allows to set the codSala attribute value.
     * 
     * @param codSala
     *            new value for codSala attribute.
     */
    public void setCodSala(int codSala) {
        this.codSala = codSala;
    }

    /**
     * Allows to get the capacidad attribute value.
     * 
     * @return the capacidad value.
     */
    public int getCapacidad() {
        return capacidad;
    }

    /**
     * Allows to set the capacidad attribute value.
     * 
     * @param capacidad
     *            new value for capacidad attribute.
     */
    public void setCapacidad(int capacidad) {
        this.capacidad = capacidad;
    }

    /**
     * Allows to get the ubicacion attribute value.
     * 
     * @return the ubicacion value.
     */
    public String getUbicacion() {
        return ubicacion;
    }

    /**
     * Allows to set the ubicacion attribute value.
     * 
     * @param ubicacion
     *            new value for ubicacion attribute.
     */
    public void setUbicacion(String ubicacion) {
        this.ubicacion = ubicacion;
    }

    /**
     * Allows to get the proyecto attribute value.
     * 
     * @return the proyecto value.
     */
    public boolean isProyector() {
        return proyector;
    }

    /**
     * Allows to set the proyecto attribute value.
     * 
     * @param proyecto
     *            new value for proyecto attribute.
     */
    public void setProyector(boolean proyector) {
        this.proyector = proyector;
    }

    /**
     * Allows to get the televisor attribute value.
     * 
     * @return the televisor value.
     */
    public boolean isTelevisor() {
        return televisor;
    }

    /**
     * Allows to set the televisor attribute value.
     * 
     * @param televisor
     *            new value for televisor attribute.
     */
    public void setTelevisor(boolean televisor) {
        this.televisor = televisor;
    }

    /**
     * Allows to get the serialversionuid attribute value.
     * 
     * @return the serialversionuid value.
     */
    public static long getSerialversionuid() {
        return serialVersionUID;
    }

    /**
     * Allows to get the nombreSala attribute value.
     * 
     * @return the nombreSala value.
     */
    public String getNombreSala() {
        return nombreSala;
    }

    /**
     * Allows to set the nombreSala attribute value.
     * 
     * @param nombreSala
     *            new value for nombreSala attribute.
     */
    public void setNombreSala(String nombreSala) {
        this.nombreSala = nombreSala;
    }

    /**
     * Allows to get the estado attribute value.
     * 
     * @return the estado value.
     */
    public boolean isEstado() {
        return estado;
    }

    /**
     * Allows to set the estado attribute value.
     * 
     * @param estado
     *            new value for estado attribute.
     */
    public void setEstado(boolean estado) {
        this.estado = estado;
    }

    /**
     * 
     * Modificar los valores del usuario.
     * 
     * @param usuario
     *            datos del usuario nuevo.
     */
    public void modificarDatosSala(Sala sala) {
        this.nombreSala = sala.getNombreSala();
        this.capacidad = sala.getCapacidad();
        this.estado = sala.isEstado();
        this.proyector = sala.isEstado();
        this.televisor = sala.isTelevisor();
        this.ubicacion = sala.getUbicacion();
    }
}
